Lưu trữ Trong quá trình tính toán, máy tính thông thường cần phải lưu trữ các giá trị trung gian để có thể sử dụng trong các tính toán sau đó. Khả năng thực hiện của máy tính phần lớn phụ thuộc vào tốc độ đọc các giá trị từ bộ nhớ và tốc độ ghi vào bộ nhớ, cũng như dung lượng bộ nhớ. Ban đầu bộ nhớ chỉ được sử dụng cho các giá trị trung gian, nhưng từ thập niên 1940 thì chính bản thân chương trình cũng có thể được lưu trữ theo cách này. Điểm nổi trội này đã dẫn đến việc ra đời của những chiếc máy tính có sẵn chương trình đầu tiên của thế hệ máy tính ngày nay. Theo năng lực sử dụng Có lẽ cách tốt nhất để phân loại các thiết bị máy tính là theo năng lực nội tại của nó, hơn là theo việc sử dụng, sự hoàn thiện công nghệ hay các đặc trưng thiết kế. Máy tính có thể chia làm ba dạng chính dựa theo năng lực sử dụng: • Các thiết bị có một mục đích chỉ có thể thực hiện duy nhất một chức năng (ví dụ cỗ máy Antikythera năm 87 trước công lịch, và máy dự báo thủy triều của Lord Kelvin năm 1876) • Các thiết bị có mục đích đặc biệt có thể thực hiện một số chức năng hữu hạn (ví dụ động cơ vi phân số 1. - Difference Engine No 1 - của Charles Babbage năm 1832 và máy phân tích vi phân của Vannevar Bush năm 1932) • Các thiết bị có mục đích không nhất định là các dạng máy tính sử dụng ngày nay. Các máy tính có mục đích không nhất định Theo định nghĩa thì một máy tính có mục đích không nhất định (general-purpose computer) có thể giải quyết bất kỳ vấn đề nào có thể biểu diễn bởi một chương trình và thực thi trong các giới hạn tạo bởi: khả năng lưu trữ của máy, kích thước của chương trình, tốc độ thực thi chương trình và độ tin cậy của máy tính. Năm 1934, Alan Turing đã chứng minh rằng, nếu được cung cấp một chương trình đúng, bất kỳ máy tính có mục đích không nhất định nào cũng có thể có hành vi như những máy tính khác. Chứng minh toán học này là hoàn toàn lý thuyết vì khi đó chưa có máy tính có mục đích không nhất định nào cả. Hệ quả của chứng minh này thật sâu sắc, ví dụ: bất kỳ một máy tính có mục đích không nhất định nào hiện nay đều có khả năng như những máy tính có mục đích không nhất định trong tương lai, mặc dù chậm hơn. Các máy tính có mục đích không nhất định còn được gọi là các máy loại Turing hoàn tất và điều này được sử dụng như khả năng ngưỡng để định nghĩa các máy tính hiện nay, tuy nhiên, định nghĩa này có vài vấn đề. Một số thiết bị tính toán với thiết kế đơn giản đã được chứng tỏ là có tính Turing hoàn tất. Cho đến nay, Z3, phát triển bởi Konrad Zuse năm 1941, là chiếc máy tính hoạt động đầu tiên đã được chứng tỏ đạt được tính chất này, (chứng minh được hoàn thành vào năm 1998). Trong khi Z3 và có thể một số thiết bị khác có tính Turing hoàn tất trên lý thuyết, trên thực tế chúng không phải là những máy tính có mục đích không nhất định. Chúng thuộc về những cái được gọi một cách hài hước là Turing Tar-Pit - "chỗ ở đó mọi điều đều có thể nhưng chẳng có gì là thực tế" (Xem Jargon File). Các máy tính hiện đại không những có mục đích không nhất định trên lý thuyết mà còn có mục đích không nhất định trên thực tế. Các máy tính hiện đại như loại kỹ thuật số, loại điện tử hay loại có mục đích không nhất định được phát triển bởi nhiều người đóng góp trong một khoảng thời gian dài từ giữa thập niên 1930 tới cuối thập niên 1940. Trong giai đoạn này rất nhiều cỗ máy thử nghiệm đã được phát triển có thể coi là có tính Turing hoàn tất (như ABC, ENIAC, Harvard Mk I, Colossus v.v.) (Xem thêm Lịch sử phần cứng máy tính). Tất cả các cỗ máy này trong thời đại của chúng đều được cho là chiếc máy tính đầu tiên, nhưng tất cả đều có những giới hạn nhất định trong mục đích sử dụng và thiết kế của chúng đã sớm bị thải loại.